$page-margin-y: 20px;
$page-margin-x: 20px;

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
}
body {
  background-color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.js-transition-disabled * {
  transition: none !important;
}

.carousel {
  position: relative;
  height: 100%;
  overflow: hidden;
  perspective: 50vw;
  perspective-origin: 50% 50%;
  &_control {
    position: absolute;
    height: 160px;
    width: 40px;
    background: #fff;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    z-index: 1;
    a {
      position: relative;
      display: block;
      width: 100%;
      padding-top: 75%;
      box-sizing: border-box;
      &:first-child {
        margin-top: 15px;
      }
      &::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        right: 0;
        margin: auto;
        border-radius: 50%;
        padding-top: 25%;
        width: 25%;
        background-color: rgba(0, 0, 0, 0.2);
        display: block;
        margin-top: -12.5%;
      }
      &:hover::before {
        background-color: rgba(0, 0, 0, 0.4);
      }
      &:active::before,
      &:active:hover::before {
        background-color: rgba(0, 0, 0, 0.6);
      }
    }
  }
  &_stage {
    position: absolute;
    top: 20px;
    bottom: 20px;
    left: 20px;
    right: 20px;
    margin: auto;
    transform-style: preserve-3d;
    transform: translateZ(calc(-50vh + 20px));
    .spinner {
      position: absolute;
      width: calc(50vw - 20px);
      height: calc(50vh - 20px);
      top: 0;
      left: 0;
      bottom: 0;
      right: auto;
      margin: auto;
      transform-style: preserve-3d;
      backface-visibility: hidden;
      transition: transform 1s;
      transform-origin: 50% 50%;
      transform: rotate(0);
      &_face {
        display: none;
        position: absolute;
        width: 100%;
        height: 100%;
        overflow: hidden;
        &.js_active {
          display: block;
          transform: translateZ(calc(50vh - 20px));
        }
        .content {
          position: absolute;
          width: 200%;
          height: 100%;
          left: 0;
          &_left,
          &_right {
            position: absolute;
            left: 0;
            top: 0;
            width: 50%;
            height: 100%;
          }
          &_right {
            right: 0;
            left: auto;
          }
          &_left {
            background-repeat: no-repeat;
            background-size: cover;
            &::after {
              content: "";
              position: absolute;
              display: block;
              width: 100%;
              height: 100%;
              background-color: rgba(0, 0, 0, 0.1);
            }
            h1 {
              position: absolute;
              top: 50%;
              margin-top: -3vw;
              text-align: center;
              font-family: oswald;
              font-size: 5vw;
              opacity: 1;
              color: #fff;
              width: 100%;
              letter-spacing: 0.15em;
              line-height: 0.6;
              span {
                font-size: 1vw;
                font-weight: 300;
                letter-spacing: 0.2em;
                opacity: 0.9;
                font-family: Merriweather;
              }
            }
          }
          &_right {
            display: flex;
            align-items: center;
            justify-content: center;
            .content_main {
              position: absolute;
              font-family: serif;
              text-align: left;
              color: #fff;
              font-size: 1.3vw;
              padding: 0 8vw;
              line-height: 1.65;
              font-weight: 300;
              margin: 0;
              opacity: 0.8;
              p {
                &:last-child {
                  text-transform: uppercase;
                  letter-spacing: 0.15em;
                  font-size: 0.85em;
                }
              }
              .content_index {
                font-size: 30vh;
                position: absolute;
                right: -1vh;
                top: 35vh;
                opacity: 0.04;
                font-family: oswald;
                color: #fff;
              }
            }
          }
        }
      }
    }
  }
}
